0:00 -- 0:20 Introduction

Why Julia? Interactive, but compiled Installation Help: documentation and mailing lists Interactivity: REPL, IJulia, Lighttable

I: Julia for users

0:20 -- 0:40 Basic Julia

Variables Control structures: if, while Ranges for Dictionaries

0:40 -- 1:00 Scientific computing

Vectors and matrices: Array Array comprehensions Random numbers Matlab-type notation

Basic macro use: @time

1:00 -- 1:15 BREAK

1:15 -- 1:35 Functions

Functions and methods Multiple dispatch

1:35 -- 1:55 User-defined types

Defining types Parametric types

1:55 -- 2:25 Packages

using, include, require, import Standard library Statistics DataStructures Graphics: PyPlot, GadFly The package ecosystem Profiling Tests

2:25 -- 2:40 BREAK

II: Developing in Julia

2:40 -- 3:00

Users are already developers Modules 3:00 -- 3:20

Metaprogramming Macros 3:20 -- 3:40

Interfacing with Python: the PyCall package 3:40 -- 4:00

Interfacing with C: ccall

include: Lowest-level; reads file, evaluates every expression Like C #include Needs filename in quotes

require: include + bunch of extra random useful behaviors (useful for dealing with packages)


In [1]:
help(require)


INFO: Loading help data...
Base.require(file::String...)

   Load source files once, in the context of the "Main" module, on
   every active node, searching the system-wide "LOAD_PATH" for
   files. "require" is considered a top-level operation, so it sets
   the current "include" path but does not use it to search for
   files (see help for "include"). This function is typically used
   to load library code, and is implicitly called by "using" to load
   packages.

import and using: Basically just namespace operations

import x adds exactly the name x to the current namespace, referring to that module (as in Python)

using x: Just same, but also looks inside x and imports the exported names into the namespace (like import *)

Names brought in via using are readonly -- can't add methods to those names

Can add methods to any name brought in by import

using: Convenient access to everything without being able to accidentally mess with anything

import and using additionally try to load a package if the thing you're looking for can't be found; done by require


In [2]:
help(using)


syntax: invalid syntax: ")"
while loading In[2], in expression starting on line 1

In [3]:
help("using")


No help information found.

Unicode

Matrix multiply

Graphics

Fast for loops

Fun and educational


In [ ]: